生成式艺术和算法创作11-Boids, Flocks, Swarms
复杂系统(Complex systems,自组织系统)由许多部分组成,虽然每个单元的行为很简单,但整个系统的行为很复杂,并且在没有通用控制算法的情况下,从单元的集体行为中浮现出来——称为涌现(Emergence)现象。
例如在蚁群中,每只蚂蚁都以化学气味对来自幼虫、其他蚂蚁、入侵者、食物和废物堆积的刺激作出反应,并留下化学痕迹,这反过来又为其他蚂蚁提供刺激。每只蚂蚁都是一个自主单位,它的反应仅取决于其当地环境和遗传编码的规则。尽管缺乏集中决策,但蚁群表现出复杂的行为。
Boids
Boids 是由 Craig Reynolds 于1986 年开发的人工生命项目,模拟鸟类的群聚行为。
与大多数人工生命模拟一样,Boids 是涌现(emergent)行为的一个例子;也就是说,Boids 的复杂性源于各个智能体,它们遵循一系列简单规则的交互。最简单的 Boids 世界中的基础规则如下:
避免(Avoidance):移开以免距离太近
模仿(Imitate):以附近其他单元的平均方向/速度飞行
中心(Center):朝向群体中心,最大限度地减少对外部的暴露
还可以添加更复杂的规则,例如避障和追求目标。
一个 Boid 单元的当前速度计算公式为:
其中,Vnew 和 Vold 是前后运动的速度向量;wa, wi, wc 是权重因子,分离权重大于仿效和凝聚权重;u 是动量因子。
Boids 是复杂系统的典型例子,由简单的智能体之间的响应式互动,通过局部空间配置或响应环境,产生了连贯的集体行为。每个代理的行为都由行为规则之间的相互作用产生,多智能体系统的行为来自许多智能体与环境的交互。
第一部使用 Boids 制作的动画是 1987 年的 Breaking the Ice。随后在 Tim Burton 的电影「蝙蝠侠归来」(1992 年)中首次亮相大屏幕,用计算机生成的蝙蝠群和企鹅军队在高谭市街头游行。
Flocks
Flocking 是指一群鸟类在觅食或飞行时表现出来的行为。与鱼的浅滩(shoaling)行为,昆虫的蜂群(swarming)行为和陆地动物的群体(herd)行为有相似之处。用于模拟鸟类 flocking 行为的计算机模拟和数学模型,通常也可以应用于其他物种。
Flock 是大量自驱动智能体的集体运动,类似许多生物如鸟类、鱼类、细菌和昆虫的集体动物行为。它是由个体遵循的简单规则引起的涌现行为,不涉及任何中心式的调控。
Flocks 的规则跟 Boids 本质上其实是一样的:
分离(Separation):在移动中避免距离其他 flock 单元太近
对齐(Alignment):以附近其他 flock 单元的平均方向/速度飞行
内聚(Cohesion):朝向群体平均位置(质心),最大限度地减少离群可能
Flocks 和 Boids 类似,因为可以模拟大量个体的群体行为,所以在很多领域都有应用,例如表示大量个体关系的数据可视化:
Moere A V (2004)
Swarms
群行行为(Swarm behaviour)、群行(Swarming)是一种集体动物行为,一群实体聚集在一起兜圈或朝特定方向行动。这是一个高度跨学科的主题,昆虫、鸟类、鱼类、水生动物、人与细菌都会出现 Swarms 行为。广义上来看,机器等无生命实体的集群行动也可以用 Swarms 描述。
Swarm 行为最初是 1986 年模拟 Boids 的仿真程序。无论是 Boids、Flocks 还是 Swarms,基础的规则都是:
朝着与邻居相同的方向前进(对齐区)
保持与邻居的关系(吸引区)
避免与邻居发生碰撞(排斥区)
为了深入了解动物为什么会进化出 Swarms 行为,科学家们已经转向模拟进化动物种群的进化模型。通常这些研究使用遗传算法来模拟许多代的进化。
Swarm 算法遵循拉格朗日方法或欧拉方法。欧拉方法将群体视为一个场,使用群体的密度并导出平均场属性。它是一种流体动力学方法,可用于模拟大型群体的整体动态。不过大多数模型使用拉格朗日方法,这是一种基于智能体的模型,遵循构成群体的各个智能体(点或粒子)。
在现代娱乐产业中,电影和游戏的人群、战争、动物集群等大场景越来越都借助于 Swarm computing 的方式来生成。
Swarm Art
Swarm Art 探讨与自组织、非消息驱动的交互和涌现等问题。 在 Swarm Art 中,群体或响应式智能体共同完成创造性任务。
Photogrowth 是Penousal Machado等人创作的一个进化系统,可以生成非真实的图像渲染。灵感来自蚁群方法的绘画算法,通过模拟在画布上行进的人工蚂蚁来产生新的渲染。蚂蚁的踪迹用连续的线条表示,就像画笔一样。所有痕迹的叠加和交织,以及它们在方向,宽度和颜色上的变化,都会从给定的图像中产生富有表现力的渲染。
Artificial Ants 一书的作者 Nicolas Monmarche 探讨了蚁群算法的进展和群体智能的新趋势,并用算法创作了一系列作品。
SwarmPainter是一个 3D swarm 绘画程序,由 Christian Jacob 和 Gerald Hushlak 在 2004 年完成。
Casey Reas 是算法艺术的推动者,也是 Processing 社区早期的主要贡献者之一。
他阐述了用简单图形生成复杂作品的想法和实现方法:
An Element is a simple machine that is comprised of a Form and one or more Behaviors. A Process defines an environment for Elements and determines how the relationships between the Elements are visualized.
Antoine Schmitt 是法国艺术家,在他 2015 年的作品「战争」系列中,使用了算法模拟蚁群般的像素军队之间的战争。
伏击
死亡之吻
Ref
- [Boids - Wikiwand](https://www.wikiwand.com/en/Boids)
- [Boids (Flocks, Herds, and Schools: a Distributed Behavioral Model)](http://www.red3d.com/cwr/boids/)
- [Flocking (behavior) - Wikiwand](https://www.wikiwand.com/en/Flocking_(behavior))
- [Swarm behaviour - Wikiwand](https://www.wikiwand.com/en/Swarm_behaviour)
- [Music boids – C L A I R E L O W](https://oss.adm.ntu.edu.sg/clow024/tag/boids/)
- Moere A V (2004). ["Time-Varying Data Visualization Using Information Flocking Boids"](http://vis.computer.org/vis2004/DVD/infovis/papers/moere.pdf) (PDF). *Proceedings of the IEEE Symposium on Information Visualization*. pp. 97–104. [doi](https://www.wikiwand.com/en/Digital_object_identifier):[10.1109/INFVIS.2004.65](https://doi.org/10.1109/INFVIS.2004.65).
- [Photogrowth: Ant Painting « CDV Lab](https://cdv.dei.uc.pt/photogrowth-ant-painting/)
- [Artificial Ants: Nicolas Monmarché, Frédéric Guinand, Patrick Siarry: 9781848211940: Amazon.com: Books](https://www.amazon.com/Artificial-Ants-ISTE-Nicolas-Monmarch%C3%A9/dp/1848211945)
- [Home of SwarmArt](http://swarmart.com/SwarmArtNew/SwarmArt.com/Home%20of%20SwarmArt.html)
- [SwarmPainter](http://swarmart.com/SwarmArtNew/SwarmArt.com/SwarmPainter.html)
HackYourself 为您精选
GEB —— 一次关于有序与无序的探寻之旅
兴趣多动症的自救指南 | 00 的 TEDx 演讲全文
把一个人活成一个公司,你可能就不会那么迷茫了
拖延这件小事,讨论一次就够了